home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / misc / gms_dev.lha / GMSDev / Source / C / Screens / ManyScreensV2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-02  |  2.5 KB  |  88 lines

  1. /* Dice: 1> dcc -l0 -mD dpk.o ManyScreens2.c -o ManyScreens2
  2. **
  3. ** This demo shows how multiple screens can be initialised in your program.
  4. ** The most important thing is that you do not refer to old objects when
  5. ** initialising new or duplicate objects.  This is why we keep two variables,
  6. ** Screen1 and Screen2, to prevent any mistakes.
  7. **
  8. ** In this version a screen is shown, then a second screen is shown
  9. ** on top of that, then they are both removed at the same time.
  10. */
  11.  
  12. #include <proto/dpkernel.h>
  13. #include <clib/colours_protos.h>
  14.  
  15. BYTE *ProgName      = "Multiple Screens V2";
  16. BYTE *ProgAuthor    = "Paul Manias";
  17. BYTE *ProgDate      = "August 1998";
  18. BYTE *ProgCopyright = "DreamWorld Productions (c) 1996-1998.  Freely distributable.";
  19. BYTE *ProgShort     = "Multiple Screens Demonstration.";
  20.  
  21. struct GScreen *Screen1    = NULL;
  22. struct GScreen *Screen2    = NULL;
  23. struct JoyData *joydata    = NULL;
  24. struct Picture *background = NULL;
  25. struct Picture *Logo       = NULL;
  26.  
  27. struct FileName BackFile = { ID_FILENAME, "GMS:demos/data/PIC.Green" };
  28. struct FileName PicFile  = { ID_FILENAME, "GMSDev:Logos/GMSLogo-FullScreen.iff" };
  29.  
  30. void Demo(void);
  31.  
  32. /***************************************************************************/
  33.  
  34. void main(void) {
  35.   if (background = Load(&BackFile, ID_PICTURE)) {
  36.    if (Screen1 = Get(ID_SCREEN)) {
  37.       CopyStructure(background, Screen1);
  38.       Screen1->Attrib  = SCR_DBLBUFFER;
  39.  
  40.     if (Init(Screen1,NULL)) {
  41.  
  42.      if (Copy(background->Bitmap,Screen1->Bitmap) IS ERR_OK) {
  43.         CopyBuffer(Screen1,BUFFER2,BUFFER1);
  44.  
  45.         if (joydata = Get(ID_JOYDATA)) {
  46.  
  47.            if (Init(joydata, NULL)) {
  48.               Display(Screen1); 
  49.  
  50.               do
  51.               {
  52.                 Query(joydata);
  53.               } while (!(joydata->Buttons & JD_LMB));
  54.            }
  55.  
  56.            if (Logo = Load(&PicFile, ID_PICTURE)) {
  57.               if (Screen2 = Get(ID_SCREEN)) {
  58.                  CopyStructure(Logo, Screen2);
  59.                  if (Init(Screen2,NULL)) {
  60.                     if (Copy(Logo->Bitmap,Screen2->Bitmap) IS ERR_OK) {
  61.                        Display(Screen2); 
  62.                        do {
  63.                           Query(joydata);
  64.                        } while (!(joydata->Buttons & JD_LMB));
  65.                     }
  66.                  }
  67.                  Free(Screen2);
  68.                  Screen2 = NULL;
  69.               }
  70.               Free(Logo);
  71.               Logo = NULL;
  72.            }
  73.  
  74.            Free(Screen1);
  75.            Screen1 = NULL;
  76.         }
  77.      }
  78.     }
  79.    }
  80.   }
  81.   Free(Screen1);
  82.   Free(Screen2);
  83.   Free(Logo);
  84.   Free(joydata);
  85.   Free(background);
  86. }
  87.  
  88.